<?php
/**
 * Created by PhpStorm.
 * User: mr.hao
 * Date: 2018/7/18
 * Time: 11:49
 */

namespace Modules\Admin\Http\Service;


use Modules\Admin\Entities\Module;
use Modules\Admin\Http\Controllers\ModuleController;
use Modules\Shop\Http\Controllers\HomeController;

class ModuleService
{
//    此方法用来为ModuleController.php服务
    public function diaoyong(){


        \DB::table('modules')->truncate();

        $module = \HDModule::getModulesLists();

//        dd($module);
//        $class = class_exists('Modules\\Admin\\Http\\Controllers\\ModuleController');
//        dd($class);

        foreach ($module as $v){


//            dump($v);
//            print_r($v);
            Module::create([
                'name'=>$v['name'],
                'title'=>$v['title'],
                'is_dafault'=>0,
                'is_home_allow'=>$this->setModule($v)
            ]);
//           dump($this->setModule($v));
        }
    }


    public function setModule($module){

//        dd($module['name']);
//        我们规定，哪个模块当中拥有HomeController类，并且类当中拥有index方法，我们就允许前台访问
        $class = class_exists('Modules\\'.$module['name'].'\\Http\\Controllers\\HomeController');
        $method = method_exists(new HomeController(),'index');
        return $class && $method;
//        既然可以获取，那也可以设置，注意你的返回值，返回出去的是真假值
    }

    public function getModule(){

//        首先想一个问题，你必须得有一个默认模板才行吧，所以是不是得有一个默认值
        $module  = Module::where([

            ['is_dafault',1],
            ['is_home_allow',1],

        ])->first();
//        dd($module->toArray());
        $module = $module?$module:Module::where('name','Shop')->first();
//        dd($module->toArray());
        return $module;
    }
}